//
// Created by jmdvirus on 2020/1/6 下午6:53.
// Copyright (c) 2020 benewtech All rights reserved.
//
//     ******          *             *--*
//       ||            *             |
//       ||  *--*--*---*  * *-********--*
//   *  //   *  *  *   *\ / ||  |  |    |
//    **    *  *  *---* *  *   *--* *--*
//

#ifndef JKLIBS_CM_PRINT_CC_H
#define JKLIBS_CM_PRINT_CC_H

enum
{
    CM_CC_LEVEL_NONE = 0,
    CM_CC_LEVEL_INFO,
    CM_CC_LEVEL_WARNING,
    CM_CC_LEVEL_ERROR,
    CM_CC_LEVEL_DEBUG,
    CM_CC_LEVEL_FATAL,
};

typedef void (*cm_print_cc_debug)(int line, const char *func, const char *fmt,
                                  ...);
typedef void (*cm_print_cc_print)(int level, int line, const char *func,
                                  const char *fmt, ...);

typedef struct
{
    cm_print_cc_print dprint;
    cm_print_cc_debug debug;
} CMPrintCC;

extern CMPrintCC cm_print_cc;

#endif // JKLIBS_CM_PRINT_CC_H
